pub fn odd_fibnacci_sum(threshold: u32) -> u32 {
    let mut result = 0;
    (0..).try_fold((0, 1), |(a, b), _| {
        if a > threshold {
            None
        } else {
            if a % 2 != 0 {
                result += a;
            }
            Some((b, a + b))
        }
    });
    result
}
